home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / shells / kiss-0.11 / kiss-0 / kiss / src / setvariable.c < prev    next >
C/C++ Source or Header  |  1995-03-23  |  559b  |  28 lines

  1. #include "kiss.h"
  2.  
  3. Stringstack setvariable (char *varname)
  4. {
  5.     char
  6.     buf [LINELEN];
  7.     register char
  8.     *cp;
  9.  
  10.     /* check for the pseudo-variables $$, $? and $! */
  11.     if (! strcmp (varname, "$$"))
  12.     sprintf (buf, "%d", getpid ());
  13.     else if (! strcmp (varname, "$?"))
  14.     sprintf (buf, "%d", laststatus);
  15.     else if (! strcmp (varname, "$!"))
  16.     sprintf (buf, "%d", lastchildpid);
  17.     else
  18.     {
  19.     /* try to get the variable */
  20.     if ( (cp = getenv (varname + 1)) )
  21.         return (setstring (cp));
  22.     else
  23.         buf [0] = '\0';
  24.     }
  25.  
  26.     return (setstring (buf));
  27. }
  28.